
package com.migration.util;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * 通用工具类
 */
@Slf4j
@Component
public class CommonUtils {
    /**
     * 如果值为空，返回默认值
     */
    public static <T> T getValueOrDefault(T value, T defaultValue) {
        return value != null ? value : defaultValue;
    }

    /**
     * 如果字符串太长，截断它
     */
    public static String truncateIfTooLong(String value, int maxLength) {
        if (value == null) {
            return null;
        }
        return value.length() > maxLength ? value.substring(0, maxLength) : value;
    }

    /**
     * 转换为Long
     */
    public static Long toLong(Integer value) {
        if (value == null) {
            return null;
        }
        return value.longValue();
    }

    /**
     * 转换为Integer
     */
    public static Integer toInteger(Byte value) {
        if (value == null) {
            return null;
        }
        return value.intValue();
    }

    /**
     * 转换为Boolean
     */
    public static Boolean toBoolean(Byte value) {
        if (value == null) {
            return null;
        }
        return value.intValue() > 0;
    }

    /**
     * 格式化日期时间
     */
    public static String formatDateTime(LocalDateTime dateTime) {
        if (dateTime == null) {
            return null;
        }
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        return dateTime.format(formatter);
    }
}
